package com.prevpn.service;

import com.prevpn.common.CommonResponse;
import com.prevpn.dto.GroupCreatDTO;
import com.prevpn.dto.GroupUpdateDTO;
import com.prevpn.vo.GroupDetailVO;

import java.util.List;
import java.util.Map;

/**
 * 组织架构业务接口定义
 */
public interface GroupService {

    /**
     * 调用 aTrust 接口，查询组织架构详情
     * @param directoryDomain 用户目录唯一标识，如 "local"
     * @param fullPath 组织架构路径，如 "/客服体系/专家中心/零信任专家组"
     * @return 组织架构详情
     */
    CommonResponse<GroupDetailVO>  queryGroupByFullPath(String directoryDomain, String fullPath);

    /**
     * 创建组织架构
     * @param dto 组织参数
     * @return 响应结果
     */
    CommonResponse<Map<String, Object>> createGroup(GroupCreatDTO dto);

    /**
     * 调用 aTrust OpenAPI 删除组织架构（支持批量删除）
     * @param directoryDomain 用户目录唯一标识，如 "local"
     * @param fullPathList 待删除的组织路径集合
     * @return 删除结果描述
     */
    CommonResponse<Map<String, Object>> deleteByFullPathList(String directoryDomain, List<String> fullPathList);

    /**
     * 调用 aTrust OpenAPI 编辑组织架构
     * @param dto 组织参数
     * @return 响应结果
     */
    CommonResponse<Map<String, Object>> updateGroup(GroupUpdateDTO dto);
}
